package edu.wit.common.db.service;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageInfo;
import edu.wit.common.db.BaseDao;

import java.util.List;
import java.util.Map;

/**
 * @author yyh
 * @create 2020-07-30 15:50
 */
public interface BaseService<K extends BaseDao<T>,T> {

    /**
     * 通用条件查询
     * @param columnMap
     * @return
     */
    List<T> baseFindList(Map<String, Object> columnMap);

    /**
     * 通用条件查询 带排序
     * @param columnMap
     * @param orderBy
     * @return
     */
    List<T> baseFindList(Map<String, Object> columnMap,String orderBy);
    /**
     * 通用条件查询 带排序
     * @param columnMap
     * @param orderBy   排序
     * @param isVisible   是否自动添加visible，默认自动添加
     * @return
     */
    List<T> baseFindList(Map<String, Object> columnMap,String orderBy,Boolean isVisible);

    /**
     * 通用分页条件查询 带排序
     * @param columnMap
     * @param orderBy
     * @return
     */
    PageInfo<T> basePageList(Map<String, Object> columnMap, String orderBy);

    /**
     * 通用分页条件查询
     * @param columnMap
     * @return
     */
    PageInfo<T> basePageList(Map<String, Object> columnMap);

    /**
     * 通用逻辑删除
     * @return
     */
    int baseLogicDelete(T entity, LambdaUpdateWrapper<T> updateWrapper);
    /**
     * 通用逻辑删除
     * @return
     */
    int baseLogicDelete(LambdaUpdateWrapper<T> updateWrapper);
}
